package com.itany.corejava.code09_集合.set集合;

/**
 * @author MissChen
 * @version 1.0
 * @date 2023 年11月21日 13:34
 */
public class User implements  Comparable<User>{
    private String name;
    private int age;

    public User(String name, int age) {
        this.name = name;
        this.age = age;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    @Override
    public String toString() {
        return "User{" +
                "name='" + name + '\'' +
                ", age=" + age +
                '}';
    }


    /**
     * 比较方法，指定比较规则
     * 如果根据年龄进行升序排列
     * 如果年龄相等，可以根据名字的长度进行比较,名字的长度降序排列
     * @param  user
     * @return
     */
    @Override
    public int compareTo(User user) {


        if(this.age>user.getAge()){
            return 1;//升序
        }else if(this.age<user.getAge()){
            return -1;//降序
        }else{
            if(this.name.length()>user.getName().length()){
                return -1;//降序
            }else if(this.name.length()<user.getName().length()){
                return 1;//升序
            }else{
                return 0;//说明age和name都是相等的，当等于0时表示是同一个对象, Set集合中不能保存相同元素, 会自动去除
            }
        }

    }
}
